package com.xht.springboot;

import com.xht.springboot.service.UserService;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;

/**
 * 当前就是配置类是因为 @SpringBootApplication的原生注解中就包含@SpringBootConfiguration和@ComponentScan
 * 而@SpringBootConfiguration的原生注解中又包含@Configuration，所以当前类被视为配置类；
 * 而@ComponentScan中没有设置扫描包，默认将当前配置类的包名则被视为扫描包路径
 */
@SpringBootApplication
public class Application {
	public static void main(String[] args) {
		// 获取ioc容器
		// spring容器 当前类就是配置类
		// run方法底层就会创建一个spring容器
		ConfigurableApplicationContext ioc = SpringApplication.run(Application.class, args);
		// 获取容器中的bean
		UserService bean = ioc.getBean(UserService.class);
		bean.getUserName();
		// 第二次获取同一个bean
		ioc.getBean(UserService.class).getUserName();
	}
}
